The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for providing multi-adapter link aggregation for adapters with hardware based virtual bridges.
Modern data processing systems can be divided into logical partitions (LPARs) where a logical partition, or simply a “partition,” operates as a virtually separate data processing system independent of the other logical partitions in the data processing system. Generally, partition management firmware connects the various partitions and provides the network connectivity among them. A hypervisor is an example of one type of partition management firmware.
Partitions may access data networks over more than one data communication paths, also known as links. A link typically facilitates data communication between an input/output (I/O) adapter and a data port, such as a port on a network switch, i.e. a device that facilitates data communication between two or more data processing systems or components thereof. A common variety of switches enables multiple data processing systems and networking capable data processing system components to communicate with each other, with a data network, or both.
A partition utilizing multiple links to communicate with a network may use multiple I/O adapters or multiple ports on an I/O adapter to communicate with multiple corresponding ports on a switch. Each I/O adapter port communicates with a port on a switch. An I/O adapter port is a point of ingress and egress of data to and from the I/O adapter. Similarly, a port on a switch is a point of ingress and egress of data to and from the switch.
Multiple links can be logically grouped together so that they appear to a partition and a switch as a communication channel of multiple links between the partition and the switch. The communication channel hides the individual I/O adapters or I/O adapter ports from the applications, executing in the partitions, that use those adapters for data communication. In this way, data communication from the applications can be serviced by any of the I/O adapter ports participating in the communication channel. A group of multiple links operating as a communication channel in this manner is called referred to as a link aggregation channel.
The most common way in which link aggregation is performed is to use the Link Aggregation Control Protocol (LACP). LACP is a protocol established by the IEEE as a method to control the bundling of several physical ports together to form a single logical channel. LACP allows an operating system of a network device to negotiate an automatic bundling of links by sending LACP packets to the peer (directly connected device that also implements LACP). LACP works by sending frames (LACPDUs) down all links that have the protocol enabled. If the sending device finds another device on the other end of the link that also has LACP enabled, the other device will also independently send frames along the same links enabling the two devices to detect multiple links between themselves and then combine them into a single logical link. It should be noted that this link aggregation is performed at an operating system level.